//
// Created by bjliuyong on 2021/7/11.
//

#ifndef JVM_GLOBALDEFINITIONS_H
#define JVM_GLOBALDEFINITIONS_H

#include <string>

typedef unsigned long long uint64_t;

//----------------------------------------------------------------------------------------------------
// Additional Java basic types

typedef unsigned char    jubyte;
typedef unsigned short   jushort;
typedef unsigned int     juint;
typedef uint64_t julong;


//----------------------------------------------------------------------------------------------------
// Java type definitions

// All kinds of 'plain' byte addresses
typedef   signed char s_char;
typedef unsigned char u_char;
typedef u_char*       address;



// Unsigned byte types for os and stream.hpp

// Unsigned one, two, four and eigth byte quantities used for describing
// the .class file format. See JVM book chapter 4.

typedef jubyte  u1;
typedef jushort u2;
typedef juint   u4;
typedef julong  u8;

#endif //JVM_GLOBALDEFINITIONS_H
